package br.com.datasun.biblioteca.delegate;

import java.util.List;

import br.com.datasun.biblioteca.entities.Emprestimo;
import br.com.datasun.biblioteca.entities.Pessoa;
import br.com.datasun.biblioteca.entities.Exemplar;
import br.com.datasun.biblioteca.exceptions.BusinessException;
import br.com.datasun.biblioteca.exceptions.DevolucaoExemplarNaoEmprestadoException;
import br.com.datasun.biblioteca.exceptions.EmprestimoExemplarJaInformadoException;
import br.com.datasun.biblioteca.exceptions.EmprestimoExemplarNaoInformadoException;
import br.com.datasun.biblioteca.exceptions.EmprestimoPessoaNaoInformadaException;
import br.com.datasun.biblioteca.exceptions.ExemplarIndisponivelException;
import br.com.datasun.biblioteca.facade.EmprestimosFacade;

public class EmprestimosDelegate {
  private EmprestimosFacade emprestimosFacade = new EmprestimosFacade();
  
  public Emprestimo inserirEmprestimo(Exemplar exemplar, Pessoa pessoa, List<Emprestimo> emprestimos) throws EmprestimoExemplarJaInformadoException, EmprestimoExemplarNaoInformadoException, EmprestimoPessoaNaoInformadaException, BusinessException, ExemplarIndisponivelException{
	  return emprestimosFacade.inserirEmprestimo(exemplar, pessoa, emprestimos);
  }
  
  public boolean confirmarEmprestimos (List<Emprestimo> emprestimos) throws EmprestimoExemplarNaoInformadoException, BusinessException{
	 return emprestimosFacade.confirmarEmprestimos(emprestimos);
  }
  
  public Emprestimo devolverEmprestimo (Emprestimo emprestimo) throws BusinessException,DevolucaoExemplarNaoEmprestadoException {
	  return emprestimosFacade.devolverEmprestimo(emprestimo);
  }
  
  public Emprestimo getEmprestimoNaoDevolvidoPorExemplar(Exemplar exemplar)throws BusinessException,DevolucaoExemplarNaoEmprestadoException{
	 return emprestimosFacade.getEmprestimoNaoDevolvidoPorExemplar(exemplar);
  }
  
}
